﻿using System;
using System.Text;

namespace System
{
	public delegate void XAction();

	public class XActionWrap : MarshalByRefObject
    {
        public event XAction Action;
        public void OnAction()
        {
            if (this.Action != null)
                this.Action();
        }
    }
								
	public delegate void XAction<T1>(T1 arg1);
	
	public class XActionWrap<T1> : MarshalByRefObject
	{
		public event XAction<T1> Action;
		public void OnAction(T1 arg1)
		{
			if(this.Action!=null)
				this.Action(arg1);
		}
	}
									
	public delegate void XAction<T1,T2>(T1 arg1,T2 arg2);
	
	public class XActionWrap<T1,T2> : MarshalByRefObject
	{
		public event XAction<T1,T2> Action;
		public void OnAction(T1 arg1,T2 arg2)
		{
			if(this.Action!=null)
				this.Action(arg1,arg2);
		}
	}
											
	public delegate void XAction<T1,T2,T3>(T1 arg1,T2 arg2,T3 arg3);
	
	public class XActionWrap<T1,T2,T3> : MarshalByRefObject
	{
		public event XAction<T1,T2,T3> Action;
		public void OnAction(T1 arg1,T2 arg2,T3 arg3)
		{
			if(this.Action!=null)
				this.Action(arg1,arg2,arg3);
		}
	}
													
	public delegate void XAction<T1,T2,T3,T4>(T1 arg1,T2 arg2,T3 arg3,T4 arg4);
	
	public class XActionWrap<T1,T2,T3,T4> : MarshalByRefObject
	{
		public event XAction<T1,T2,T3,T4> Action;
		public void OnAction(T1 arg1,T2 arg2,T3 arg3,T4 arg4)
		{
			if(this.Action!=null)
				this.Action(arg1,arg2,arg3,arg4);
		}
	}
															
	public delegate void XAction<T1,T2,T3,T4,T5>(T1 arg1,T2 arg2,T3 arg3,T4 arg4,T5 arg5);
	
	public class XActionWrap<T1,T2,T3,T4,T5> : MarshalByRefObject
	{
		public event XAction<T1,T2,T3,T4,T5> Action;
		public void OnAction(T1 arg1,T2 arg2,T3 arg3,T4 arg4,T5 arg5)
		{
			if(this.Action!=null)
				this.Action(arg1,arg2,arg3,arg4,arg5);
		}
	}
																	
	public delegate void XAction<T1,T2,T3,T4,T5,T6>(T1 arg1,T2 arg2,T3 arg3,T4 arg4,T5 arg5,T6 arg6);
	
	public class XActionWrap<T1,T2,T3,T4,T5,T6> : MarshalByRefObject
	{
		public event XAction<T1,T2,T3,T4,T5,T6> Action;
		public void OnAction(T1 arg1,T2 arg2,T3 arg3,T4 arg4,T5 arg5,T6 arg6)
		{
			if(this.Action!=null)
				this.Action(arg1,arg2,arg3,arg4,arg5,arg6);
		}
	}
																			
	public delegate void XAction<T1,T2,T3,T4,T5,T6,T7>(T1 arg1,T2 arg2,T3 arg3,T4 arg4,T5 arg5,T6 arg6,T7 arg7);
	
	public class XActionWrap<T1,T2,T3,T4,T5,T6,T7> : MarshalByRefObject
	{
		public event XAction<T1,T2,T3,T4,T5,T6,T7> Action;
		public void OnAction(T1 arg1,T2 arg2,T3 arg3,T4 arg4,T5 arg5,T6 arg6,T7 arg7)
		{
			if(this.Action!=null)
				this.Action(arg1,arg2,arg3,arg4,arg5,arg6,arg7);
		}
	}
																					
	public delegate void XAction<T1,T2,T3,T4,T5,T6,T7,T8>(T1 arg1,T2 arg2,T3 arg3,T4 arg4,T5 arg5,T6 arg6,T7 arg7,T8 arg8);
	
	public class XActionWrap<T1,T2,T3,T4,T5,T6,T7,T8> : MarshalByRefObject
	{
		public event XAction<T1,T2,T3,T4,T5,T6,T7,T8> Action;
		public void OnAction(T1 arg1,T2 arg2,T3 arg3,T4 arg4,T5 arg5,T6 arg6,T7 arg7,T8 arg8)
		{
			if(this.Action!=null)
				this.Action(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8);
		}
	}
																							
	public delegate void XAction<T1,T2,T3,T4,T5,T6,T7,T8,T9>(T1 arg1,T2 arg2,T3 arg3,T4 arg4,T5 arg5,T6 arg6,T7 arg7,T8 arg8,T9 arg9);
	
	public class XActionWrap<T1,T2,T3,T4,T5,T6,T7,T8,T9> : MarshalByRefObject
	{
		public event XAction<T1,T2,T3,T4,T5,T6,T7,T8,T9> Action;
		public void OnAction(T1 arg1,T2 arg2,T3 arg3,T4 arg4,T5 arg5,T6 arg6,T7 arg7,T8 arg8,T9 arg9)
		{
			if(this.Action!=null)
				this.Action(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9);
		}
	}
																									
	public delegate void XAction<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10>(T1 arg1,T2 arg2,T3 arg3,T4 arg4,T5 arg5,T6 arg6,T7 arg7,T8 arg8,T9 arg9,T10 arg10);
	
	public class XActionWrap<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10> : MarshalByRefObject
	{
		public event XAction<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10> Action;
		public void OnAction(T1 arg1,T2 arg2,T3 arg3,T4 arg4,T5 arg5,T6 arg6,T7 arg7,T8 arg8,T9 arg9,T10 arg10)
		{
			if(this.Action!=null)
				this.Action(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10);
		}
	}
	 
}